﻿namespace NTLib.WPF.Attributes
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    /// <summary>
    /// 
    /// </summary>
    [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
    public class PropertyExposedAttribute : Attribute
    {
        #region Enums

        /// <summary>
        /// Example of special key managed by default.
        /// </summary>
        public static class SpecialKeys
        {
            public const string Percent = "Percent";
        }

        #endregion

        #region Properties

        /// <summary>
        /// Gets a value indicating whether this property is exposed.
        /// </summary>
        /// <value>
        ///   <c>true</c> if exposed; otherwise, <c>false</c>.
        /// </value>
        public bool Exposed { get; }

        /// <summary>
        /// Gets the name.
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// Gets or sets the special key used to retreive the template
        /// </summary>
        public string SpecialKey { get; set; }

        #endregion

        #region Ctor

        /// <summary>
        /// Initializes a new instance of the <see cref="PropertyExposedAttribute"/> class.
        /// </summary>
        public PropertyExposedAttribute(bool exposed = true)
        {
            this.Exposed = exposed;
        }

        #endregion
    }
}
